/*
The Enemy class represents an enemy in the game world, as represented by the "Ogros" model.
*/

#ifndef GUARD_Enemy_h
#define GUARD_Enemy_h

#include "Vector3.h"
#include "Object3D.h"
#include "MovableObject.h"
#include "GL/glut.h"
#include "Projectile.h"
#include "Collidable.h"
#include <vector>

class Enemy : public MovableObject
{
private:
	static const int DYING_TIME;

	Collidable* currentPlatform;
	int deathCounter;
	bool facingRight;
	bool inAir;
	Object3D* mModel;
	float moveSpeed;
	std::vector<Projectile*> projectiles;
	
public:
	Enemy();
	~Enemy();

	void onAnimationFinish(int state);
	
	void move(const std::vector<Collidable*>& plats);
	void draw();
	void youreDead(float projectileVel);
	void setMoveSpeed(float ms);
};

#endif